﻿using AnyTap.ViewModels;
namespace AnyTap.Services;

public class ServiceLocator
{
	//服务定位器字段，使用这个字段来获取服务
	private readonly IServiceProvider provider;

	//通过serviceProvider返回需要的服务（对象）
	public MainViewModel MainViewModel => provider.GetService<MainViewModel>();
	public SettingViewModel SettingViewModel => provider.GetService<SettingViewModel>();

	//构造函数，创建ServiceLocator对象时，①创建容器；②注册ViewModel服务；③创建服务定位器。
	public ServiceLocator()
	{
		provider = new ServiceCollection()
			.AddSingleton<MainViewModel>()
			.AddSingleton<SettingViewModel>()
			.BuildServiceProvider();
	}
}
